﻿//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using System.Xml;
//using System.Diagnostics;

//namespace GenericLibrary.Xml {

//    public class XmlReaderMbrWrapper : MarshalByRefObject, IDisposable {

//        private XmlReader _reader;

//        public XmlReaderMbrWrapper( XmlReader reader ) {
//            this._reader = reader;
//        }

//        public int AttributeCount {
//            get {
//                try {
//                    return this._reader.AttributeCount;
//                } catch( Exception ) {
//                    Debug.Assert( false );
//                    throw;
//                }
//            }
//        }

//        public string BaseURI {
//            get {
//                try {
//                    return this._reader.BaseURI;
//                } catch( Exception ) {
//                    Debug.Assert( false );
//                    throw;
//                }
//            }
//        }

//        public void Close() {
//            try {
//                this._reader.Close();
//            } catch( Exception ) {
//                Debug.Assert( false );
//                throw;
//            }
//        }

//        public int Depth {
//            get {
//                try {
//                    return this._reader.Depth;
//                } catch( Exception ) {
//                    Debug.Assert( false );
//                    throw;
//                }
//            }
//        }

//        public bool EOF {
//            get {
//                try {
//                    return this._reader.EOF;
//                } catch( Exception ) {
//                    Debug.Assert( false );
//                    throw;
//                }
//            }
//        }

//        public string GetAttribute( int i ) {
//            try {
//                return this._reader.GetAttribute( i );
//            } catch( Exception ) {
//                Debug.Assert( false );
//                throw;
//            }
//        }

//        public string GetAttribute( string name, string namespaceURI ) {
//            try {
//                return this._reader.GetAttribute( name, namespaceURI );
//            } catch( Exception ) {
//                Debug.Assert( false );
//                throw;
//            }
//        }

//        public string GetAttribute( string name ) {
//            try {
//                return this.GetAttribute( name );
//            } catch( Exception ) {
//                Debug.Assert( false );
//                throw;
//            }
//        }

//        public bool HasValue {
//            get {
//                try {
//                    return this._reader.HasValue;
//                } catch( Exception ) {
//                    Debug.Assert( false );
//                    throw;
//                }
//            }
//        }

//        public bool IsEmptyElement {
//            get {
//                try {
//                    return this._reader.IsEmptyElement;
//                } catch( Exception ) {
//                    Debug.Assert( false );
//                    throw;
//                }
//            }
//        }

//        public string LocalName {
//            get {
//                try {
//                    return this._reader.LocalName;
//                } catch( Exception ) {
//                    Debug.Assert( false );
//                    throw;
//                }
//            }
//        }

//        public string LookupNamespace( string prefix ) {
//            try {
//                return this._reader.LookupNamespace( prefix );
//            } catch( Exception ) {
//                Debug.Assert( false );
//                throw;
//            }
//        }

//        public bool MoveToAttribute( string name, string ns ) {
//            try {
//                return this._reader.MoveToAttribute( name, ns );
//            } catch( Exception ) {
//                Debug.Assert( false );
//                throw;
//            }
//        }

//        public bool MoveToAttribute( string name ) {
//            try {
//                return this._reader.MoveToAttribute( name );
//            } catch( Exception ) {
//                Debug.Assert( false );
//                throw;
//            }
//        }

//        public bool MoveToElement() {
//            try {
//                return this._reader.MoveToElement();
//            } catch( Exception ) {
//                Debug.Assert( false );
//                throw;
//            }
//        }

//        public bool MoveToFirstAttribute() {
//            try {
//                return this._reader.MoveToFirstAttribute();
//            } catch( Exception ) {
//                Debug.Assert( false );
//                throw;
//            }
//        }

//        public bool MoveToNextAttribute() {
//            try {
//                return this._reader.MoveToNextAttribute();
//            } catch( Exception ) {
//                Debug.Assert( false );
//                throw;
//            }
//        }

//        public XmlNameTable NameTable {
//            get {
//                try {
//                    return this._reader.NameTable;
//                } catch( Exception ) {
//                    Debug.Assert( false );
//                    throw;
//                }
//            }
//        }

//        public string NamespaceURI {
//            get {
//                try {
//                    return this._reader.NamespaceURI;
//                } catch( Exception ) {
//                    Debug.Assert( false );
//                    throw;
//                }
//            }
//        }

//        public XmlNodeType NodeType {
//            get {
//                try {
//                    return this._reader.NodeType;
//                } catch( Exception ) {
//                    Debug.Assert( false );
//                    throw;
//                }
//            }
//        }

//        public string Prefix {
//            get {
//                try {
//                    return this._reader.Prefix;
//                } catch( Exception ) {
//                    Debug.Assert( false );
//                    throw;
//                }
//            }
//        }

//        public bool Read() {
//            try {
//                return this._reader.Read();
//            } catch( Exception ) {
//                Debug.Assert( false );
//                throw;
//            }
//        }

//        public bool ReadAttributeValue() {
//            try {
//                return this._reader.ReadAttributeValue();
//            } catch( Exception ) {
//                Debug.Assert( false );
//                throw;
//            }
//        }

//        public ReadState ReadState {
//            get {
//                try {
//                    return this._reader.ReadState;
//                } catch( Exception ) {
//                    Debug.Assert( false );
//                    throw;
//                }
//            }
//        }

//        public void ResolveEntity() {
//            try {
//                this._reader.ResolveEntity();
//            } catch( Exception ) {
//                Debug.Assert( false );
//                throw;
//            }
//        }

//        public string Value {
//            get {
//                try {
//                    return this._reader.Value;
//                } catch( Exception ) {
//                    Debug.Assert( false );
//                    throw;
//                }
//            }
//        }

//        public void Dispose() {
//            try {
//                ( this._reader as IDisposable ).Dispose();
//            } catch( Exception ) {
//                Debug.Assert( false );
//                throw;
//            }
//        }
//    }

//    public class XmlReaderProxy : XmlReader {

//        private XmlReaderMbrWrapper _wrapper;

//        public XmlReaderProxy( XmlReaderMbrWrapper wrapper ) {
//            this._wrapper = wrapper;
//        }

//        public override int AttributeCount {
//            get {
//                try {
//                    return this._wrapper.AttributeCount;
//                } catch( Exception ) {
//                    Debug.Assert( false );
//                    throw;
//                }
//            }
//        }

//        public override string BaseURI {
//            get {
//                try {
//                    return this._wrapper.BaseURI;
//                } catch( Exception ) {
//                    Debug.Assert( false );
//                    throw;
//                }
//            }
//        }

//        public override void Close() {
//            try {
//                this._wrapper.Close();
//            } catch( Exception ) {
//                Debug.Assert( false );
//                throw;
//            }
//        }

//        public override int Depth {
//            get {
//                try {
//                    return this._wrapper.Depth;
//                } catch( Exception ) {
//                    Debug.Assert( false );
//                    throw;
//                }
//            }
//        }

//        public override bool EOF {
//            get {
//                try {
//                    return this._wrapper.EOF;
//                } catch( Exception ) {
//                    Debug.Assert( false );
//                    throw;
//                }
//            }
//        }

//        public override string GetAttribute( int i ) {
//            try {
//                return this._wrapper.GetAttribute( i );
//            } catch( Exception ) {
//                Debug.Assert( false );
//                throw;
//            }
//        }

//        public override string GetAttribute( string name, string namespaceURI ) {
//            try {
//                return this._wrapper.GetAttribute( name, namespaceURI );
//            } catch( Exception ) {
//                Debug.Assert( false );
//                throw;
//            }
//        }

//        public override string GetAttribute( string name ) {
//            try {
//                return this._wrapper.GetAttribute( name );
//            } catch( Exception ) {
//                Debug.Assert( false );
//                throw;
//            }
//        }

//        public override bool HasValue {
//            get {
//                try {
//                    return this._wrapper.HasValue;
//                } catch( Exception ) {
//                    Debug.Assert( false );
//                    throw;
//                }
//            }
//        }

//        public override bool IsEmptyElement {
//            get {
//                try {
//                    return this._wrapper.IsEmptyElement;
//                } catch( Exception ) {
//                    Debug.Assert( false );
//                    throw;
//                }
//            }
//        }

//        public override string LocalName {
//            get {
//                try {
//                    return this._wrapper.LocalName;
//                } catch( Exception ) {
//                    Debug.Assert( false );
//                    throw;
//                }
//            }
//        }

//        public override string LookupNamespace( string prefix ) {
//            try {
//                return this._wrapper.LookupNamespace( prefix );
//            } catch( Exception ) {
//                Debug.Assert( false );
//                throw;
//            }
//        }

//        public override bool MoveToAttribute( string name, string ns ) {
//            try {
//                return this._wrapper.MoveToAttribute( name, ns );
//            } catch( Exception ) {
//                Debug.Assert( false );
//                throw;
//            }
//        }

//        public override bool MoveToAttribute( string name ) {
//            try {
//                return this._wrapper.MoveToAttribute( name );
//            } catch( Exception ) {
//                Debug.Assert( false );
//                throw;
//            }
//        }

//        public override bool MoveToElement() {
//            try {
//                return this._wrapper.MoveToElement();
//            } catch( Exception ) {
//                Debug.Assert( false );
//                throw;
//            }
//        }

//        public override bool MoveToFirstAttribute() {
//            try {
//                return this._wrapper.MoveToFirstAttribute();
//            } catch( Exception ) {
//                Debug.Assert( false );
//                throw;
//            }
//        }

//        public override bool MoveToNextAttribute() {
//            try {
//                return this._wrapper.MoveToNextAttribute();
//            } catch( Exception ) {
//                Debug.Assert( false );
//                throw;
//            }
//        }

//        public override XmlNameTable NameTable {
//            get {
//                try {
//                    return this._wrapper.NameTable;
//                } catch( Exception ) {
//                    Debug.Assert( false );
//                    throw;
//                }
//            }
//        }

//        public override string NamespaceURI {
//            get {
//                try {
//                    return this._wrapper.NamespaceURI;
//                } catch( Exception ) {
//                    Debug.Assert( false );
//                    throw;
//                }
//            }
//        }

//        public override XmlNodeType NodeType {
//            get {
//                try {
//                    return this._wrapper.NodeType;
//                } catch( Exception ) {
//                    Debug.Assert( false );
//                    throw;
//                }
//            }
//        }

//        public override string Prefix {
//            get {
//                try {
//                    return this._wrapper.Prefix;
//                } catch( Exception ) {
//                    Debug.Assert( false );
//                    throw;
//                }
//            }
//        }

//        public override bool Read() {
//            try {
//                return this._wrapper.Read();
//            } catch( Exception ) {
//                Debug.Assert( false );
//                throw;
//            }
//        }

//        public override bool ReadAttributeValue() {
//            try {
//                return this._wrapper.ReadAttributeValue();
//            } catch( Exception ) {
//                Debug.Assert( false );
//                throw;
//            }
//        }

//        public override ReadState ReadState {
//            get {
//                try {
//                    return this._wrapper.ReadState;
//                } catch( Exception ) {
//                    Debug.Assert( false );
//                    throw;
//                }
//            }
//        }

//        public override void ResolveEntity() {
//            try {
//                this._wrapper.ResolveEntity();
//            } catch( Exception ) {
//                Debug.Assert( false );
//                throw;
//            }
//        }

//        public override string Value {
//            get {
//                try {
//                    return this._wrapper.Value;
//                } catch( Exception ) {
//                    Debug.Assert( false );
//                    throw;
//                }
//            }
//        }

//        protected override void Dispose( bool disposing ) {
//            try {
//                if( disposing ) {
//                    this._wrapper.Dispose();
//                }
//                base.Dispose( disposing );
//            } catch( Exception ) {
//                Debug.Assert( false );
//                throw;
//            }
//        }
//    }
//}
